<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <input type="text" value="默认值" id="ipt">
    <script>

//  get（target, property, receiver）方法用于拦截某个属性的读取操作，可以接受三个参数，分别为目标对象、属性名和 proxy 实例本身。看下面例子能不能拦截：
//    var obj={
//        value:null
//    }

    // var ipt=document.querySelector('#ipt')
    // obj.value=ipt.value
//   console.log(ipt,'/??');
let obj = { name: "jack", age: "20" };
     // 给obj设置一个代理
      let p = new Proxy(obj, {
        get(target, property) {
          console.log("我拦截了" + target + "读取" + property);
          console.log("它的值为" + target[property]);
          // 定义你要返回的值
          return target[property];
        },
        set(){
            console.log(1111);
            return 99
        }
      });
      
      //读取obj的age属性看看,注意定义代理后得用代理来调用属性或方法
      console.log(p.age);
      
      console.log(p.age=1010,'???');
    
    </script>
</body>
</html>